package com.siashan.unipay4j.wx.model.transfer.newmodel;

import com.siashan.unipay4j.core.IBaseEnum;

/**
 * 公共错误码枚举
 *
 * @author siashan
 *
 * @date 2025/3/18
 **/
public enum WxTransferStateEnum implements IBaseEnum<String> {
    /**
     * 转账已受理
     */
    ACCEPTED("ACCEPTED","转账已受理"),
    /**
     * 转账锁定资金中。如果一直停留在该状态，建议检查账户余额是否足够，如余额不足，可充值后再原单重试
     */
    PROCESSING("PROCESSING","转账锁定资金中。如果一直停留在该状态，建议检查账户余额是否足够，如余额不足，可充值后再原单重试"),
    /**
     * 待收款用户确认，可拉起微信收款确认页面进行收款确认
     */
    WAIT_USER_CONFIRM("WAIT_USER_CONFIRM","待收款用户确认，可拉起微信收款确认页面进行收款确认"),
    /**
     * 转账中，可拉起微信收款确认页面再次重试确认收款
     */
    TRANSFERING("TRANSFERING","转账中，可拉起微信收款确认页面再次重试确认收款"),
    /**
     * 转账成功
     */
    SUCCESS("SUCCESS"," 转账成功"),
    /**
     * 转账失败
     */
    FAIL("FAIL","转账失败"),
    /**
     * 商户撤销请求受理成功，该笔转账正在撤销中
     */
    CANCELING("CANCELING","商户撤销请求受理成功，该笔转账正在撤销中"),
    /**
     * 转账撤销完成
     */
    CANCELLED("CANCELLED","转账撤销完成"),
    ;


    private String value;
    private String desp;

    WxTransferStateEnum(String value, String desp) {
        this.value = value;
        this.desp = desp;
    }


    public void setValue(String value) {
        this.value = value;
    }

    public void setDesp(String desp) {
        this.desp = desp;
    }

    /**
     * 获取枚举value值
     *
     * @return T
     */
    @Override
    public String getValue() {
        return this.value;
    }

    /**
     * 获取枚举desp值
     *
     * @return desp值
     */
    @Override
    public String getDesp() {
        return this.desp;
    }
}
